/*!
	\file LecteurCaractere.h
	\brief La spécification de la classe LecteurCaractere

	Décrit la liste des méthodes et attributs associés à la class LecteurCaractere
	\author Arnaud MAILLET
	\date 03.01.2009
*/

/*! 
	\class LecteurCaractere
	\brief La classe permettant de lire les caractères d'un fichier

	Cette classe permet de lire les caractères d'un fichier
	Les méthodes suivantes sont associées à un objet de type LecteurCaractere :
	\li getCarCour
	\li getLigne
	\li getColonne
	\li suivant
*/
#ifndef LECTEURCARACTERE_H_
#define LECTEURCARACTERE_H_

#include <fstream>
using namespace std;

class LecteurCaractere {

////////////////////////////////////////////////////////////////////////////////
public :

	/*! 
	\fn LecteurCaractere(string nomFich)
	\brief Constructeur de la classe LecteurCaractere.

	Ce constructeur construit le lecteur pour parcourir les caractères du fichier
	\param nomFich - le nom du fichier
        */
	LecteurCaractere(string nomFich);

	/*! 
	\fn inline char getCarCour()
	\brief Retourne le caractère courant
	\return la valeur du caractère courant
	*/
	inline char getCarCour() { return carCour; }

	/*! 
	\fn inline unsigned int getLigne()
	\brief Retourne la ligne courante
	\return la valeur de la ligne courante
	*/
	inline unsigned int getLigne() { return ligne; }

	/*! 
	\fn inline unsigned int getColonne()
	\brief Retourne la colonne courante
	\return la valeur de la colonne courante
	*/
	inline unsigned int getColonne() { return colonne; }

	/*!
	\fn void suivant()
	\brief Permet de passer au caractere suivant, s'il existe
	*/
	void suivant(); // passe au caractere suivant, s'il existe

////////////////////////////////////////////////////////////////////////////////
private :

	/*!
	\var ifstream f
	\brief  Contient le fichier texte que l'on parcourt
	*/
	ifstream f;

	/*!
	\var char carCour
	\brief  Contient le caractere courant
	*/
	char carCour;

	/*!
	\var int ligne
	\brief  Contient le numero de ligne du caractere courant
	*/
	unsigned int ligne;

	/*!
	\var int colonne
	\brief  Contient le numero de colonne du caractere courant
	*/
	unsigned int colonne;
};

#endif /* LECTEURCARACTERE_H_ */
